package Date;

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

/*
    Calendar创建实例的方法：
    1.通过getInstance()获取
    2.通过子类GregorianCalendar实例化获取
    Calendar中最常用的几个方法：
    1.get：获取到指定字段的值
    2.add：对指定的时间点来进行偏移
    3.set：将指定的字段设置为指定的值
    (在Calendar类中，月份的计算是从0开始，星期几的计算是从星期日开始计算，星期天为1，依次增加)
 */
public class Calendar1 {
    public static void main(String[] args) {
        //获取对象的两种方式
        Calendar calendar=Calendar.getInstance();
        Calendar calendar1=new GregorianCalendar();
        System.out.println(calendar);

        //calendar.get():参数为Calendar中已有的字段
        System.out.println(calendar.get(Calendar.YEAR));    //年
        System.out.println(calendar.get(Calendar.MONTH));   //月
        System.out.println(calendar.get(Calendar.DAY_OF_MONTH));    //日
        System.out.println(calendar.get(Calendar.HOUR_OF_DAY));     //小时

        //calendar.add():
        calendar.add(Calendar.DAY_OF_MONTH,3);
        System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
        //calendar.set():可以设置一个具体的时间，也可以将某个字段的值设置为指定的值
        calendar.set(2021,4,3);
        calendar.set(Calendar.MONTH,6);
        //不想要系统时间，自己指定一个时间
        Calendar calendar2=new GregorianCalendar(2020,1,1,0,0,0);
        System.out.println(calendar2);

//        calendar.getTime():将Calendar转换为Date
        Date date=calendar.getTime();
        //将Date转换为Calendar:使用给定的时间设置这个日历
        calendar.setTime(date);

    }
}
